Apache/Nginx এর সাথে Django ডেপ্লয়মেন্ট

Web Development - জ্যাঙ্গো (Django) - Django ডিপ্লয়মেন্ট এবং Production Setup
209

Django অ্যাপ্লিকেশনটি প্রোডাকশন পরিবেশে চালানোর জন্য Apache অথবা Nginx ওয়েব সার্ভার ব্যবহার করা হয়। এই ওয়েব সার্ভারগুলি Django অ্যাপ্লিকেশনকে রিভার্স প্রোক্সি হিসেবে কাজ করার জন্য কনফিগার করা হয়, যা মিডলওয়ার বা সার্ভারের মধ্যে বিভিন্ন রিকোয়েস্ট হ্যান্ডলিং ও লোড ব্যালান্সিং ম্যানেজ করে।

এখানে, আমরা Apache এবং Nginx উভয়ের সাথে Django ডেপ্লয়মেন্ট সেটআপ করার জন্য প্রাথমিক স্টেপগুলি আলোচনা করব।


১. Apache এর সাথে Django ডেপ্লয়মেন্ট

Apache সাধারণত mod_wsgi এর মাধ্যমে Django অ্যাপ্লিকেশন চালাতে ব্যবহৃত হয়। mod_wsgi হল একটি Apache মডিউল যা Python অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়। Django অ্যাপ্লিকেশনকে Apache সার্ভারে ডেপ্লয় করতে আপনাকে কয়েকটি স্টেপ অনুসরণ করতে হবে।

১.১. Apache এবং mod_wsgi ইনস্টল করা

প্রথমে আপনাকে Apache এবং mod_wsgi ইনস্টল করতে হবে। Ubuntu-তে এটি ইনস্টল করতে কমান্ড ব্যবহার করুন:

sudo apt-get update
sudo apt-get install apache2
sudo apt-get install libapache2-mod-wsgi-py3

১.২. Django অ্যাপ্লিকেশন প্রস্তুত করা

আপনার Django প্রজেক্টটি অবশ্যই settings.py ফাইলে ALLOWED_HOSTS এবং STATIC_ROOT কনফিগার করা থাকতে হবে।

# settings.py

ALLOWED_HOSTS = ['your-domain.com', 'your-server-ip']
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

১.৩. Static ফাইলের জন্য collectstatic চালানো

Apache/Django সার্ভারে স্ট্যাটিক ফাইলগুলিকে যথাযথভাবে সার্ভ করার জন্য আপনাকে collectstatic কমান্ড চালাতে হবে।

python manage.py collectstatic

১.৪. Apache কনফিগারেশন সেটআপ

Apache কনফিগারেশন ফাইলে আপনার Django অ্যাপ্লিকেশন সার্ভ করার জন্য mod_wsgi ব্যবহার করতে হবে। একটি নতুন Apache কনফিগারেশন ফাইল তৈরি করুন।

sudo nano /etc/apache2/sites-available/django_project.conf

এটি নিম্নরূপ কনফিগার করুন:

<VirtualHost *:80>
    ServerName your-domain.com
    DocumentRoot /path/to/your/project

    WSGIDaemonProcess django_project python-path=/path/to/your/project:/path/to/your/project/venv/lib/python3.x/site-packages
    WSGIProcessGroup django_project
    WSGIScriptAlias / /path/to/your/project/project_name/wsgi.py

    Alias /static/ /path/to/your/project/static/
    <Directory /path/to/your/project/static>
        Require all granted
    </Directory>

    <Directory /path/to/your/project/project_name>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

এখানে:

  • WSGIScriptAlias: এটি Django এর wsgi.py ফাইলের পাথ নির্দেশ করে, যা Django অ্যাপ্লিকেশনকে Apache এর মাধ্যমে সার্ভ করতে সাহায্য করে।
  • Alias /static/: স্ট্যাটিক ফাইলগুলি সার্ভ করার জন্য কনফিগার করা হয়েছে।

১.৫. Apache রিস্টার্ট করা

কনফিগারেশন ফাইলটি সেভ করার পর, Apache সার্ভারটি রিস্টার্ট করুন।

sudo a2ensite django_project.conf
sudo systemctl restart apache2

২. Nginx এর সাথে Django ডেপ্লয়মেন্ট

Nginx হল একটি হাই-পারফরম্যান্স ওয়েব সার্ভার যা সাধারণত রিভার্স প্রোক্সি হিসেবে ব্যবহৃত হয়। Django অ্যাপ্লিকেশন Nginx এর সাথে সার্ভ করতে আপনি uWSGI ব্যবহার করতে পারেন, যা Nginx এবং Django অ্যাপ্লিকেশন এর মধ্যে যোগাযোগ স্থাপন করে।

২.১. Nginx এবং uWSGI ইনস্টল করা

প্রথমে Nginx এবং uWSGI ইনস্টল করতে হবে।

sudo apt-get update
sudo apt-get install nginx
sudo apt-get install uwsgi
sudo apt-get install uwsgi-plugin-python3

২.২. Django অ্যাপ্লিকেশন প্রস্তুত করা

settings.py ফাইলে ALLOWED_HOSTS, STATIC_ROOT, এবং MEDIA_ROOT কনফিগার করুন।

# settings.py

ALLOWED_HOSTS = ['your-domain.com', 'your-server-ip']
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

২.৩. uWSGI কনফিগারেশন

আপনার Django অ্যাপ্লিকেশনকে uWSGI ব্যবহার করে Nginx এর মাধ্যমে চালাতে হবে। প্রথমে uWSGI কনফিগারেশন ফাইল তৈরি করুন।

sudo nano /etc/uwsgi/apps-available/django_project.ini

এই কনফিগারেশন ফাইলে নিম্নরূপ লিখুন:

[uwsgi]
chdir = /path/to/your/project
module = project_name.wsgi:application

home = /path/to/your/project/venv
master = true
processes = 5
socket = /path/to/your/project/django_project.sock
chmod-socket = 666
vacuum = true

static-map = /static=/path/to/your/project/static

এখানে:

  • module: আপনার Django প্রজেক্টের wsgi.py ফাইলের পাথ নির্দেশ করছে।
  • socket: uWSGI এবং Nginx এর মধ্যে যোগাযোগের জন্য Unix socket ব্যবহার করা হচ্ছে।

২.৪. Nginx কনফিগারেশন

এখন, Nginx এর কনফিগারেশন ফাইল তৈরি করুন এবং সেটআপ করুন।

sudo nano /etc/nginx/sites-available/django_project

এটি নিম্নরূপ কনফিগার করুন:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        uwsgi_pass unix:/path/to/your/project/django_project.sock;
        include uwsgi_params;
    }

    location /static/ {
        alias /path/to/your/project/static/;
    }

    location /media/ {
        alias /path/to/your/project/media/;
    }
}

এখানে:

  • uwsgi_pass: uWSGI এর সকেটের পাথ নির্দেশ করছে।
  • alias: স্ট্যাটিক এবং মিডিয়া ফাইলের পাথ নির্দেশ করছে।

২.৫. Nginx এবং uWSGI রিস্টার্ট করা

এখন, Nginx এবং uWSGI সার্ভার রিস্টার্ট করুন।

sudo ln -s /etc/nginx/sites-available/django_project /etc/nginx/sites-enabled
sudo systemctl restart nginx
sudo systemctl start uwsgi

সারাংশ

  • Apache এর সাথে Django ডেপ্লয়মেন্টে mod_wsgi ব্যবহার করা হয়। এটি Django অ্যাপ্লিকেশনকে Apache সার্ভারে রান করার জন্য একটি অ্যাড-অন মডিউল।
  • Nginx এর সাথে Django ডেপ্লয়মেন্টে uWSGI ব্যবহৃত হয়, যা Nginx এবং Django অ্যাপ্লিকেশন এর মধ্যে একটি ব্রিজ হিসেবে কাজ করে।
  • Apache এবং Nginx উভয়ই জনপ্রিয় ওয়েব সার্ভার এবং তারা Django অ্যাপ্লিকেশন সার্ভ করার জন্য উন্নত পারফরম্যান্স প্রদান করে, বিশেষ করে প্রোডাকশন পরিবেশে।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...